zabbix使用percona zabbix mysql-plugin监控mysql数据库

        由于zabbix自带的mysql监控模板监控的东西比较少,使用percona zabbix mysql-plugin实现对mysql的监控。

        percona zabbix mysql-plugin是percona发布的一个使用zabbix监控mysql数据库的工具,这款工具比zabbix自带的监控模板要强大的多,毕竟percona是Mysql的一个重要分支,专业做数据库的,所以,采集的数据比较全面。

        下面开始进入正题,部署mysql的监控。

        首先,需要安装安装php和php-mysql,因为用到了php脚本,所以在本机上面需要安装php,至于php的安装不是本文讨论的重点

        然后,需要去percona官网下载最新版本的percona zabbix mysql-plugin,从1.1版本开始起支持zabbix,包括cacti,nagios也都有接口提供,这里下载的是percona zabbix mysql-plugin

        下载后安装

1
rpm -ivh percona-zabbix-templates-1.1.5-1.noarch.rpm

        安装完毕后会产生两个目录,每个目录有两个文件,详细结果如下所示:

1
2
3
4
5
6
[root@test2 ~]# ls /var/lib/zabbix/percona/
scripts templates
[root@test2 ~]# ls /var/lib/zabbix/percona/scripts/
get_mysql_stats_wrapper.sh ss_get_mysql_stats.php
[root@test2 ~]# ls /var/lib/zabbix/percona/templates/
userparameter_percona_mysql.conf zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.5.xml

        首先,需要下载模版文件zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.5.xml然后将这个模 板文件导入到zabbixweb端的模板中去,然后将配置文 userparameter_percona_mysql.conf放入到zabbix的配置文件目录中,我这的目录 是/usr/local/zabbix-2.4.4/etc/zabbix_agentd.conf.d/

        然后修改zabbix_agentd.conf配置文件,将配置文件所在目录添加进去,也就是添加下面这行语句:

1
Include=/usr/local/zabbix-2.4.4/etc/zabbix_agentd.conf.d/*.conf

        然后修改脚本,首先修改sh脚本,也就是get_mysql_stats_wrapper.sh这个脚本,将下面这条语句进行修改:

1
RES=`HOME=~zabbix mysql -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`

        修改为:

1
RES=`/usr/local/mysql/bin/mysql -uroot -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`

        这里Mysql没有设置root密码,可以在这里写入mysql的相应账号密码。

        还有需要注意,在这个脚本中需要调用php来实现监控,所以需要修改php的路径,我的php的路径为/usr/local/php/bin/php,所以将脚本中的那条命令修改成下面这样:

1
CMD="/usr/local/php/bin/php -q $DIR/ss_get_mysql_stats.php --host $HOST --items gg"

        之后保存该脚本,并修改权限为755
然后修改php脚本文件,修改用户名和密码如下:

1
2
3
$mysql_user = 'root';
$mysql_pass = '';
$mysql_port = 3306;

        因为mysqlroot密码是空的,所以这里密码是没有输入的,可以修改成相应的账号密码。

        修改完之后保存配置并将权限设置为755,然后重启zabbix_agentd,在zabbix_server端添加刚刚我们导入进去的模板,就可以实现mysql的监控了,下面是监控的效果图:

        但是貌似这个模板对于单个数据库虽然足够详细,对于数据库集群的监控还是不够给力,需要在其监控脚本的基础上进行修改,使其能够监控到数据库集群的状态信息那就更好了,当然,我这里只做了单个数据库的监控,集群由于没有实际部署,这里也就没有进行演示了,对这方面感兴趣的童鞋们可以自行阅读脚本源代码,对脚本进行修改以便于实现mysql集群的详细监控。